1. Field of the Invention
This invention relates to optical control systems and devices, for example, touch sensitive displays and touch sensitive overlays for displays.
2. Description of the Related Art
In a traditional optical touch overlay, optical emitters and detectors are arranged along opposing edges of a rectangular touch sensitive area. An orthogonal grid is formed by the optical beams between the emitters and the corresponding detectors over the touch sensitive area. The beams are scanned in sequence to determine if the path loss indicates that there is an object (such as a finger or a stylus) interrupting or modulating any of the beams.
The touch sensitive area may be an optically transparent planar waveguide through which the beams pass by total internal reflection, or a surface over which the beams pass in close proximity to the surface and substantially parallel to the surface.
In the case of a waveguide, the material used can be a transparent sheet of plastic or glass. An object such as a finger or a stylus coming into contact with the transparent waveguide will have a higher refractive index than the air normally surrounding the waveguide. The increase in refractive index will disrupt total internal reflection of light energy at the interface between the waveguide and the touching object, causing increased light leakage from the waveguide over the area of contact. This leakage attenuates any beams passing through the position of the touch event. Correspondingly, the removal of the touching object will cause the attenuation of the passing beams to be reduced as will be detectable at the output of the associated detectors.
In the present specification the term “light” includes IR and UV radiation, and the term “optical” is to be interpreted accordingly.
When the touch sensitive area is a surface over which the beams pass, an object which is not optically transparent at the wavelength in use will attenuate or interrupt the beams passing through the object location.
This is illustrated in FIG. 1, where an opaque object 10 at position T attenuates a beam 12 between an emitter 14 on the left side of a touch sensitive area 16 and a detector 18 on the right side of the touch area 16. The opaque object 10 also interrupts a beam 20 between orthogonal axis emitters 22 and the corresponding detectors 24.
Scanning logic circuitry associated with the emitters and detectors can determine the intersection point of one or more interrupted beam paths and deduce the position of the interrupting object. The object must be large enough to detectably attenuate at least one beam in one axis and at least one beam in the orthogonal axis.
Such a panel traversed by optical paths can, in addition to the detection of touch events, detect the operation of mechanical control devices arranged along the optical paths. For example, a mechanical button control may be inserted along an optical path whereby the button control presents a minimal attenuation to optical energy when the button actuator is in its resting position, but introduces significant optical attenuation when the button actuator is pressed. This may be accomplished by introducing an opaque vane into the optical path when the button is pressed. Various mechanical designs for control devices may be used to modulate the optical energy passing along the optical paths such that the status of such control devices can be detected by processing the signals from the optical detectors.
The use of amplitude modulation of optical emitter outputs in optical touch and related optical control systems is well known. Typically, a specific frequency of modulation is chosen which can readily be separated from unwanted signals at the detector output by narrowband filtering. This modulating signal can be applied to an emitter by using it to modulate the current flowing through the emitter, which is usually be a current controlled device such as an LED.
However, optical emitter and detector response times (often tens of microseconds for detectors) and the need to be distant in frequency from the harmonics of mains-powered light sources limit the range of usable frequencies in low cost applications, so most devices using airborne optical transmission have optical emitters which are amplitude modulated by a fixed frequency in the 30 kHz to 80 kHz range.
Therefore, any device using optical detectors may receive external interference originating from other devices with emitters radiating light of a similar wavelength which is modulated by a similar range of frequencies.
Optical scanning devices normally activate emitters (modulated or unmodulated) in a sequential manner, so that the signal at one or more active detectors can be associated with a known source emitter. This prolongs the scanning process, particularly if modulation needs to be detected for each emitter signal to be determined reliably.
The invention provides an optical control system comprising:
a plurality of optical emitters and a plurality of optical detectors defining therebetween an area of optical paths whereby the transmission of energy between an emitter and a detector may be modulated by an optical interaction occurring in the vicinity of said area, wherein at least one of said detectors is positioned to receive optical energy from more than one of said optical emitters;
drive circuitry for driving a plurality of said optical emitters simultaneously according to a modulation scheme in which each emitter is modulated with a different modulation function, said functions being orthogonal relative to one another;
correlation means associated with said at least one detector for receiving an output therefrom and correlating said output with at least those modulation functions driving those emitters which said at least one detector is positioned to receive optical energy from, to thereby determine the amount of energy incident on said at least one detector from each of said emitters.
In the present invention, functions which are orthogonal to one another are used to amplitude modulate the emitter devices, with one orthogonal function allocated to each emitter. Preferably, each modulating function has a broad frequency spectrum and a strongly non-periodic nature in the time domain so that it will not correlate well with interference signals, which are typically periodic.
In the present specification the term “orthogonal” refers to any two chosen functions from a family of “orthogonal” functions having zero cross-correlation.
Preferably, each modulating function has just two values over time so that digital control of the emitter may be used for simplification of the associated circuitry and processing. The depth modulation applied to the emitter may be any value from greater than 0% up to 100%.
There exist families of complex functions which are orthogonal to each other. If each emitter in a group of emitters is allocated a function from an orthogonal family of functions, the emitters may be simultaneously modulated by their respective functions but the energy from each emitter arriving at a given detector will still be measurable separately. By correlating the output from a detector which receives the composite energy from at least one emitter with each of the modulation functions in use, the resulting correlation values are accurate estimates of the energy received from the emitter associated with each modulation function.
FIG. 2 shows the hardware sections of an optical control system. The microprocessor 26 writes emitter modulation patterns to the emitter register 28 under software control. The sample values for at least one of the emitters 30 are written at the start of every sample interval. The beams 32 travel across the touch sensitive area 34 and, if not interrupted by an opaque object, arrive at a detector 36. The analogue multiplexer 38 selects the analogue output of one detector 36 as directed by the value in register 40 and routes it to the analogue-to-digital converter 42 for conversion into numeric form for processing by the microprocessor 26. The analogue multiplexer 38 may select the outputs of more than one detector during a single sample interval.
The touch sensitive area 34 can be an optically transparent planar waveguide through which the beams pass by total internal reflection, or a surface over which the beams pass in close proximity to the surface and substantially parallel to the surface, to give two examples. The emitters and detectors are shown as two simple arrays on opposite edges, but in practice, emitters and detectors may be arranged around the entire perimeter of the surface (e.g. all four edges of a rectangular surface) to maximise the resolution of, the touch sensitive system.
The current drawn by the emitters 30 when they are radiating will usually be substantial and it is advantageous to minimize the time for which the emitters 30 are active. Therefore, it may be efficient in a device with current limitations for the microprocessor 26 to update the emitter register 28 at the start of every sample period and to control the analogue multiplexer 38 by means of register 40 such that the signals from more than one detector 36 are routed to the analogue-to-digital converter 42 in rapid succession and the resulting sample values written to RAM 44 for processing later. Before the first analogue-to-digital conversion can be performed by the converter 42 in a given sample interval, there may need to be a pause corresponding to at least the response times of the emitters 30 and the detectors 36. When the sample and store process is complete for all of the detectors 36, the sample period can end and the next sample period can commence with the updating of the emitter register 28. At least one digital sample of the output of the detectors 36 is required for every update of the emitter register 28. When there has been a sample interval with an emitter update and sample acquisition for each bit of the modulating functions, the emitters 30 can all be rendered inactive by the controlling software and the sample values in the RAM 44 can be correlated with the modulating functions.
The use or a family of orthogonal modulation functions in the present invention means that all or many emitters can be modulated simultaneously, so the scanning process is accelerated. Also, the energy estimates arrived at by correlation with the modulating functions are largely unaffected by external interference signals as well by each other. An additional benefit of the present invention is that the correlation processing makes use of many detector samples and tends to yield results which have higher resolution than the sample values themselves, due to the averaging of noise over the sample set.
A given family of orthogonal functions will have a minimum period over which the member functions of that family are fully orthogonal. That minimum period will typically be a number of samples which is a power of two. There will be more functions in an orthogonal family when the number of samples is increased (i.e. a longer code length is used), permitting more emitters to be simultaneously active. However, long codes will also incur a longer scanning time for a given modulation rate. Ideally, the shortest code length which provides an orthogonal modulation function for each emitter in a group (where a group might be all of the emitters in a system or might be the emitters relating to an X or Y axis) would be used.
In selecting modulation functions from a family of orthogonal functions, some may be more desirable than others. For example, the families of Walsh functions are families of mainly complex orthogonal functions where each has only two values over time, but some members are purely periodic i.e. they are square waves with a constant period. The non-periodic functions are to be preferred since the functions used preferably have the broad spectrum mentioned above. However, this constraint reduces the number of family members which can be used for a given code length.
FIG. 3 shows an example family of orthogonal functions with a code length of 16 samples. The cross correlation of any of these functions with any other function in the family is zero over the code length.
Function numbers 3, 4, 7, 8, 9, 10, 11 and 12 have been marked with an asterisk to indicate that these are preferable to the other family members because they are non-periodic. (Even so, functions 4 and 12 are still not ideal, as they have only one phase change and are therefore substantially periodic.)
In an additional aspect of the invention, the emitter on and off periods are varied in a complex manner. This permits the use of periodic modulation functions. The sampling of the detectors must be varied similarly so that the sample values presented to the correlation processing will be essentially unaffected by the timing variations. The timing variations can be derived from a complex function such as a pseudorandom sequence and the variations are applied globally so that all emitters change state at the same time and all detectors are sampled at approximately the same time (the use of a multiplexed analogue-to-digital converter means that they cannot be sampled truly simultaneously)
An external interference signal is likely to be modulated in a periodic manner and FIG. 4 shows that it is possible that it will correlate with a periodic emitter modulation function of similar frequency and phase. Function 13 in FIG. 4 is the modulation function 13 from the family of functions shown in FIG. 3. Function 13 of the example family is periodic and the transition between samples is marked with an arrow. It will be evident from the diagram that the external periodic interference signal shown is of similar frequency and phase to function 13 and would correlate strongly with function 13.
In accordance with this additional aspect of the present invention, function 13′ in FIG. 4 has the same sequence of values as function 13, but the timing between the application of the function values to the associated emitter is varied and inconsistent. The transition between samples is again marked with an arrow. The detector sampling is varied in the same way so the correlation with the emitter modulation functions will be unchanged while the correlation with external periodic interference signals, which are similar in frequency to the nominal frequency of the modulating function, will be significantly reduced.
This timing variation can be applied even if only non-periodic emitter modulation functions are being used, so that the spectral components of the emitter modulation function are spread in frequency around the harmonics of the nominal modulation frequency. This will increase the rejection of typical interference signals, particularly when short code lengths are used.
In another aspect of the invention, members of a family of orthogonal functions may be chosen such that the number of emitters active at any stage during the length of the codes is limited to a maximum number. Without applying this criterion, many combinations of orthogonal functions will result in at least one step in the code length where all or all but one of the emitters are active.
If the code length is large, the number of available orthogonal functions may be large—tens of thousands for a 32-bit code length—and iterative methods can be used to select functions with the minimum number of simultaneous ‘1’ or ‘0’ values (whichever value corresponds to an emitter being activated).
FIG. 5 lists a set of values (in decimal and binary) for modulating 16 emitters with every bit in the binary representation word assigned to an emitter and with modulating functions of 32 bits in length. A given bit position in each of the 32 words represents the values of one orthogonal function. The set of values listed is suitable for driving emitters where an emitter is activated by a ‘1’ value in the corresponding bit of each 16-bit word. None of the functions listed are periodic.
Thus, for each emitter, the sequence of values used to drive the emitter through a series of 32 “on” or “off” states is found by reading down the columns. Each row is a 16 bit word used to drive the 16 different emitters to the on or off state represented by a different position. So, for example, the first word (decimal 19418=binary 0100101111011010) is written to the register at the start of the first sample interval and determines that each of the first, third, fourth, sixth, eleventh, fourteenth and sixteenth emitters is driven to an “off” state, while the remaining emitters are driven to the “on” state during this first sample interval. The emitter states for the second sample interval are determined by the second row (decimal 40557=binary 1001111001101101), switching the first emitter on, the second emitter off, leaving the third emitter on, and so on.
The functions used to generate the list shown in FIG. 5 have been iteratively selected to minimise the number of emitters active at any time. In the case of the functions listed, there is no word which would activate more than 11 emitters at once. An advantage of this aspect of the invention is that it reduces the dynamic range of the light levels received at a detector. This can be translated into an improved signal-to-noise ratio in the signal acquired by the A/D converter used to digitize analogue detector outputs. An additional advantage of using functions selected in this way is reduced peak current demand caused by the relatively high operating current drawn by the emitters and reduced variation in current demand (power line noise) over the code length.
In some applications, it may also be advantageous to select functions where the minimum number of emitters that would be simultaneously active is large, so that the variation in light level at a detector and the variation in current consumption is kept to a minimal value. With the example functions shown in FIG. 5, there are never fewer than 3 emitters active at a time, so the range of light levels at the detectors will vary between the output of 3 emitters and the output 11 emitters, assuming none of the beams are interrupted. This may also be advantageous in other circumstances, such as where the detectors are phototransistors, a minimum illumination level biases the phototransistors into a relatively linear part of their characteristic curve.
In yet another aspect of the present invention, more than the requisite single sample of a detector output is acquired during a sample interval. At least one of the additional samples taken is acquired with the emitters inactive.
The taking of additional samples when the emitters are inactive is well known for the purposes of ambient light compensation. However, it is also advantageous to take such samples with a precise timing relationship to the modulation of the emitters to minimize the effects of rapidly modulated interference as well as ambient light. This can be accomplished by acquiring samples of the detector output before and after the emitters are active for a given step of their emitter functions.
FIG. 6a shows an example of a sampling sequence in accordance with this additional aspect of the present invention. The timescale shown covers one bit period in the length of a code. First, the emitters are forced off and a sample is taken when the detectors have settled at the resulting light level. The sample value acquired will be determined by the amount of external light which is effectively unmodulated, such as sunlight, and the amount of modulated light, such as incandescent light, which is incident upon the given detector. A second sample is taken during the emitter activation period. It is during this time that the various functions allocated to each emitter specify whether the corresponding emitter should be activated or not for this bit period. FIG. 6b shows an example of a bit period where at least one of the emitter functions dictates that the associated emitter is to be activated. A third sample is taken after the emitter has been turned off after the emitter activation period.
If the ‘before’ and ‘after’ samples are acquired with a known timing relative to the ‘during’ sample (when the emitters are emitting or not as determined by the current phase of their corresponding modulation functions), an intermediate estimate of the ‘during’ sample with the emitters off can be interpolated. If the time between the ‘before’ and ‘during’ samples and the ‘during’ and ‘after’ samples is the same, the interpolation is simply the sum of the ‘before’ and ‘after’ sample values divided by 2. This interpolated value can be subtracted from the actual sample acquired during the emitter activation time to compensate for ambient light and interference of low frequency relative to the sample rate.
Preferably, the interval between all three samples is short relative to the modulation rate of typical interferers.
A useful value can be derived from the ‘before’ and ‘after’ samples when the difference between them is calculated. This gives an approximate measure of the noise and interference present at frequencies which are high relative to the sampling rate. This noise estimate can advantageously be used to generate alarms or inhibit the generation of scan data if the amount of noise and interference is excessive (meaning the scan data is of dubious quality).
By comparing the noise estimate with the results of the correlation process, the signal-to-noise ratio of the signal at a detector can be estimated for each emitter. This can be used to control the emitter power as described in our co-pending specification (PCT application claiming priority from Irish Patent Application S2008/0653).
When sampling rapidly and with fixed timing, the ‘before’ sample of one function bit period may be the ‘after’ sample of the previous bit period.
FIG. 7 is a flowchart showing one way of generating a set of modulation functions. A set of aperiodic sequences of the required length is generated and tested for mutual orthogonality. The number of ones and/or zeroes in each position is checked across the set of sequences. If a threshold has been set (e.g. no more than 11 ones in the same position in each of 16 sequences) then a comparison is made with this threshold, and additional candidate sequences are substituted until the threshold is met. If no threshold has been set, the process continues by discarding and replacing sequences until an optimal solution is reached.
Alternatively, one could generate families of mutually orthogonal sequences and, within each such family, select the required number of functions (e.g. 16 functions to drive a group of 16 emitters) based on the optimal solution in terms of highest minimum number of simultaneous “off” states and/or lowest maximum number of simultaneous “on” states. This could be repeated for several such families of mutually orthogonal functions up to and including exhaustively testing all such sequences of length N to find the optimal solution.
The invention is not limited to the embodiment described herein but can be amended or modified without departing from the scope of the present invention.